Подключение метода /api/v1/auth/register на API-Шлюзе

Валидация входящего DTO регулярными выражениями, проброс в gRPC RegisterUser и маппинг ответа 201 Created.

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи
  • Репозиторий / Компонент: backend-api (API Gateway / Шлюз).
  • Категория: Подключение метода к шлюзу.
  • Контракт взаимодействия: Внешний POST /api/v1/auth/register -> Внутренний gRPC AuthService.RegisterUser.
  • Статус: Готово к реализации

WarningОграничение публичной документации

В открытом доступе представлена демонстрационная версия задачи. В настоящей публичной документации отображены не все шаги, технические сценарии и приватные эндпоинты для системы цифровых симуляторов бизнес-процессов.

  • Полная спецификация метода: Доступна только во внутреннем контуре разработки (Confluence / Swagger Enterprise).
  • Для получения доступа: Обратитесь к системному аналитику или Product Owner вашей команды.

  • Инструкция по шагам:
    1. На Шаге 1-2 (Входной REST-эндпоинт): Зарегистрировать внешний маршрут POST /api/v1/auth/register. Настроить валидацию входящего тела UserRegisterRequestDTO через Pydantic-модель (проверка email регулярным выражением, проверка минимальной длины пароля от 8 символов). При нарушении структуры возвращать HTTP 400 Bad Request.
    2. На Шаге 3 (gRPC-клиент): Сформировать сообщение RegisterRequest, маппируя строковый режим space_creation_mode во внутренний Protobuf-Enum, и направить вызов в auth-service. Обеспечить сквозную трассировку по поставляемому в заголовках X-Request-ID.
    3. Маппинг бизнес-статусов: Перехватывать gRPC-исключения от бэкенда. Если возвращается ошибка ALREADY_EXISTS (Email занят), подменять ответ шлюза на HTTP 409 Conflict (с JSON-телом кода ERR_EMAIL_ALREADY_EXISTS). Ошибку невалидного инвайт-кода маппить в HTTP 404 Not Found / HTTP 410 Gone (код ERR_INVITE_TOKEN_INVALID).
    4. Финальный ответ (Шаг 9): При получении успешного RegisterResponse (с токенами внутри), сформировать JSON-ответ со статусом 201 Created, содержащий status: "success", метаданные профиля и авторизационные ключи для мобильного клиента.